iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0

BroadcastReceiver 又稱為廣播接收器,他主要的功能就是監聽、接收應用程式發出的廣播,並做出回應,他可以整個系統的發送廣播,而不是傳送訊息給指定的應用,舉個例子來說,十多年前的很紅的泡麵廣告中(暴露年紀),里長廣播通知張君雅小妹妹泡麵煮好了,雖然全里的人都會聽到這個廣播,但只會有張君雅小妹妹收到通知開始衝回家,所以 BroadcastReceiver 就有點像在整個系統之間的廣播,像是一種傳遞訊息的方式,Android 系統也很長發送廣播,像是電量過低、有無網路等。

註冊廣播接收器

要使用 BroadcastReceiver 首先就是要註冊廣播接收器,分為動態註冊與靜態註冊兩種方法:

  • 動態註冊
    在程式中呼叫 registerReceiver(),在動態註冊時有註冊廣播就會需要撤銷廣播(unregisterReceiver),不然會導致 Memory Leak,通常會推薦在 Activity 的 onResume() 註冊, onPause() 撤銷,動態註冊並不是一直存在的,會跟隨元件的生命週期來變化,可以用在需要特定時刻監聽廣播。
  • 靜態註冊
    靜態註冊則是在 AndroidManifest.xml 中透過 receive 標籤來註冊,會一直存在,就算應用程式關閉後也不受影響,所以會比較耗電與佔記憶體,用在持續監聽的廣播。

面試可能會遇到的相關問題

  • 什麼是 BroadcastReceiver?
  • 動態註冊與靜態註冊的區別以及如何實作?

參考資料

BroadcastReceiver | Android Developers
手把手教你学会广播组件-BroadcastReceiver


上一篇
第六天:Android 四大元件之 Service
下一篇
第八天:Android 四大元件之 Content Provider
系列文
轉職成 Android Developer 的最後一哩路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言